// Header Protection
#ifndef _WINDOW_H_
#define _WINDOW_H_

// Include Files
#include "Definitions.h"
#include <Windows.h>

// Namespace
namespace IE
{
	/////////////////////////////////////////////////////////////////////////////////
	// Creates and manages a window.
	class CWindow
	{
	public:     // methods
		CWindow();
		~CWindow();

		// Creates a window using the current settings.
		void Create();

		// Destroys the window.
		void Destroy();

		// Makes the window visible.
		void Show();

		// Makes the window invisible.
		void Hide();

	private:    // static methods

		// Window procedure.
		static LRESULT __stdcall WindowProc(
			HWND _hWindow, UINT _nMessage, WPARAM _wParam, LPARAM _lParam );

	private:    // data
		HINSTANCE m_hApplication;
		HWND      m_hWindow;
		string_t  m_strTitle;
		uint_t    m_uiWidth;
		uint_t    m_uiHeight;
		bool_t    m_bFullscreen;

	private:    // dummy definitions
		CWindow( CWindow const & _rhs );
		CWindow & operator =( CWindow const & _rhs );
	};
}

// Header Protection
#endif // _WINDOW_H_
